package annotation;

import java.lang.annotation.*;

@Target({ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD, ElementType.TYPE,ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Immutable {
    //只有一种状态，并且该状态由构造函数来控制
    //不可变性不等于将对象中所有的域都声明为finall

    /**满足不可变对象的条件
     * 对象创建后状态不能修改
     * 对象所有域都是final类型的
     * 对象是正确创建的（对象创建时this没有逸出）
     */

    //不可变对象和不可变引用



}
